USE [GENESIS]
GO

/****** Object:  StoredProcedure [Seguridad].[UsuarioTablet]    Script Date: 02/18/2013 15:40:59 ******/
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Seguridad].[UsuarioTablet]') AND type in (N'P', N'PC'))
DROP PROCEDURE [Seguridad].[UsuarioTablet]
GO

USE [GENESIS]
GO

/****** Object:  StoredProcedure [Seguridad].[UsuarioTablet]    Script Date: 02/18/2013 15:40:59 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO




CREATE PROCEDURE [Seguridad].[UsuarioTablet]
@usuario VARCHAR(50),
@password VARCHAR(100),
@valido INT OUTPUT
AS
DECLARE
@estPass CHAR(1),   -- Estado A --> Contraseña Encriptada P --> La contraseña fue reseteada
@estUser CHAR(1),   -- Estado A activo o I inactivo
@pass VARCHAR(40),  -- Contraseña encriptada en MD5 en la tabla de usuarios
@clave VARCHAR(40), -- Contraseña encriptada MD5 para comparar con la @pass que se encuentra en la tabla
@user_logon VARCHAR(25),
--@valido INT,
@fechaCaducaUser  datetime,  -- Fecha Caduca Usuario
@fechaCaducaClave datetime  -- Fecha Caduca Clave

set @user_logon=''
SELECT  
@user_logon = IdUsuario,
@pass = Clave,
@estUser=EstadoUsuario,
@estPass=EstadoClave,
@fechaCaducaUser=FechaCaducaUsuario,
@fechaCaducaClave=FechaCaducaClave
FROM Seguridad.Usuario
where IdUsuario=@usuario 

--set @user_logon=''
IF @user_logon = ''
	set @valido = 10   -- Usuario NO existe
else if @estUser = 'I'
	set @valido = 11   -- Usuario Inactivo
else if @fechaCaducaUser < GETDATE()
	set @valido = 12  -- Usuario Fuera de Fecha
else if @fechaCaducaClave < GETDATE()
	set @valido = 13  -- Clave vencida
else 
begin
			if @estPass = 'A'
				Set @password = (SELECT SUBSTRING(master.dbo.fn_varbintohexstr(HashBytes('MD5', @password)), 3, 32))
			if @pass <> @password
				set @valido = 14   -- Clave Incorrecta
			else
				set @valido = 1  -- Clave Correcta
end
RETURN @valido


GO

